热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

湿度|都会_OracleLiveLabs实验:8PartitioningTechniquesinOracleDatabase

篇首语:本文由编程笔记#小编为大家整理,主要介绍了OracleLiveLabs实验:8PartitioningTechniquesinOracleDatabase相关的知识,希望对你

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Oracle LiveLabs实验:8 Partitioning Techniques in Oracle Database相关的知识,希望对你有一定的参考价值。



概述

此实验关于Oracle Partitioning选件。

此实验申请地址在这里。

实验帮助在这里。

实验宣称需要2小时40分,实际用了4个小时。


Introduction


About this Workshop

Oracle 提供了全面的分区方案来满足每个业务需求。 此外,由于它在 SQL 语句中完全透明,因此分区可以用于任何应用程序,从打包的 OLTP 应用程序到数据仓库。 在本次研讨会中,我们将探索各种分区类型及其相应的用例。

预计工作坊时间:2 小时 40 分钟


About Oracle Partitioning

Oracle 分区增强了大型数据库的可管理性、性能和可用性。 它提供了全面的分区方法来满足不同的业务需求。 我们可以在事务、数据仓库和混合工作负载应用程序上应用数据库分区,而无需更改任何代码。 我们可以对大型表和索引使用分区,以使它们成为更小的对象,可以在更高级的粒度级别上进行管理和访问。

在 Oracle 数据库中对大型表和索引进行分区可确保为每个业务需求提供最佳方法,并且可以增强几乎所有数据库应用程序的可管理性、性能和可用性。 分区允许将表和索引分解为更小的物理块,同时保持单个对象的逻辑视图。


Challenges with growing Data Volume

让我们考虑一下金融服务部门,尤其是零售银行业务,每次我们进行借记、贷记、定期存款、定期存款、汽车 EMI 支付、水电费支付等交易时。 根据 2021 年 12 月 31 日的商业标准报告,它在交易主表中生成一条记录,并且数据呈指数级增长。印度的数字交易量从 2017 财年的 108.5 亿增长到 21 财年的 555.4 亿,复合 年增长率为50.42%。 因此,随着数据量的增长,我们可以将很大一部分历史数据归档到归档存储中,以便按需检索; 然而,即使我们考虑当前财政年度的数据,它在银行层面也有数百万条记录。 在此级别运行查询将花费大量时间并影响整体性能。 最好根据业务需求将数据划分为更小的单元。

大表难以管理,因此可以将大型数据库和索引拆分成更小、更易于管理的部分。 例如,如果我们的数据库中有太多事件,我们可以轻松地将该表划分为基于区域和月份的事件。

分区的好处:


  • 通过仅处理相关数据来提高性能。
  • 通过最适当地存储数据来降低成本。
  • 它易于实施,无需更改应用程序和查询。
  • 它是成千上万的 Oracle 客户使用的成熟且经过充分验证的特性。
  • 分区减少了从存储中检索的数据量
  • 它仅对相关分区执行操作
  • 透明地提高查询性能并优化资源利用率

分区支持数据管理操作,例如。


  • 数据加载、连接和修剪,
  • 索引创建和重建,
  • 优化器统计管理,
  • 备份和恢复

Objectives

在本次研讨会中,您将学习如何创建以下分区。


  • 范围分区
  • 间隔分区
  • 列表分区
  • 哈希分区
  • 自动列表分区
  • 只读分区
  • 多列列表分区
  • 将非分区表转换为分区表

Learn More

Partitioning whitepaper
Oracle Database Editions


Get started

实验环境生成后,单击“View Login Info”可以看到登录信息:

本实验使用的数据库是ADW,即自治数据仓库。

实际上,脚本可以在任何Oracle数据库上运行,而且测试数据很少,最多也就100条。大部分的实验来自Oracle LiveSQL。


Lab 1: Connect to you Autonomous Database

原实验是用SQL Developer Web,为了速度和方便,我还是使用了SQL Developer。配置过程略。


Lab 2: Range Partitioning


Introduction

范围分区根据您为每个分区建立的分区键值范围将数据映射到分区。 它是与日期一起使用的最常见的分区类型。 例如,您可能希望将销售数据划分为每月分区。 CREATE TABLE 语句的 PARTITION BY RANGE 子句指定表或索引是范围分区的。 PARTITION 子句标识各个分区范围,并且 PARTITION 子句的可选子句可以选择特定于分区段的物理属性和其他属性。

预计实验时间:20 分钟


About Range Partitioning

范围分区是最常见的分区类型,与日期一起使用。 对于以日期列作为分区键的表,January-2010 分区将包含分区键值从 2010 年 1 月 1 日到 2010 年 1 月 31 日的行。

每个分区都有一个 VALUES LESS THAN 子句,该子句指定分区的非包含上限(因为是小于而非小于等于)。 任何等于或高于此文字的分区键值都将添加到下一个更高的分区。 除第一个分区外,所有分区都具有由前一个分区的 VALUES LESS THAN 子句指定的隐式下限。

可以为最高分区定义 MAXVALUE 文字。 MAXVALUE 表示一个虚拟的无限值,其排序高于分区键的任何可能值,包括 NULL 值。


Features


  • 在 Oracle 8.0 引入
  • Range Partition 是单级分区
  • 时间数据的理想选择
  • 数据可以根据需要拆分和合并

Sales data based on specific date range

以下是有关美国零售业的一些有趣事实,美国电子商务行业专家预计销售数据将以两位数增长,到 2021 年增长 17.9% 至 9333 亿美元。 电子商务渗透率将继续增加,比 2019 年翻一番还多,到 2025 年达到 23.6%。这意味着不断增长的客户和销售数据量以及其可管理性带来的挑战。 管理如此大量的按时间顺序或销售数据的解决方案是根据日期范围对其进行分区或使用范围分区。


Task 1: Create Range Partitioned Table

让我们创建范围分区表。 该表使用 sales_date 列的值按范围分区。 分区界限由 VALUES LESS THAN 子句确定。

CREATE TABLE sales_range_partition (
product_id NUMBER(6),
customer_id NUMBER,
channel_id CHAR(1),
promo_id NUMBER(6),
sale_date DATE,
quantity_sold INTEGER,
amount_sold NUMBER(10, 2)
)
PARTITION BY RANGE (
sale_date
)
( PARTITION sales_q1_2014
VALUES LESS THAN ( TO_DATE('01-APR-2014', 'dd-MON-yyyy') ),
PARTITION sales_q2_2014
VALUES LESS THAN ( TO_DATE('01-JUL-2014', 'dd-MON-yyyy') ),
PARTITION sales_q3_2014
VALUES LESS THAN ( TO_DATE('01-OCT-2014', 'dd-MON-yyyy') ),
PARTITION sales_q4_2014
VALUES LESS THAN ( TO_DATE('01-JAN-2015', 'dd-MON-yyyy') )
);

使用此 SQL 查询显示表中的分区。

SET SQLFORMAT ANSICONSOLE
SELECT
table_name,
partition_name,
partition_position,
high_value
FROM
user_tab_partitions
WHERE
table_name = 'SALES_RANGE_PARTITION';
TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
SALES_RANGE_PARTITION SALES_Q1_2014 1 TO_DATE(' 2014-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q2_2014 2 TO_DATE(' 2014-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q3_2014 3 TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q4_2014 4 TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')

新增分区:

ALTER TABLE sales_range_partition ADD PARTITION sales_q1_2015
VALUES LESS THAN ( TO_DATE('01-APR-2015', 'dd-MON-yyyy') );

添加新分区后显示表中的分区。

TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
SALES_RANGE_PARTITION SALES_Q1_2014 1 TO_DATE(' 2014-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q2_2014 2 TO_DATE(' 2014-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q3_2014 3 TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q4_2014 4 TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
SALES_RANGE_PARTITION SALES_Q1_2015 5 TO_DATE(' 2015-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')

将值插入表中。

INSERT INTO sales_range_partition VALUES (1001,100,'A',150,'10-FEB-2014',500,2000);
INSERT INTO sales_range_partition VALUES (1002,110,'B',180,'15-JUN-2014',100,1000);
INSERT INTO sales_range_partition VALUES (1001,100,'A',150,'20-AUG-2014',500,2000);
COMMIT;

显示表中指定分区的数据。

SELECT * FROM sales_range_partition PARTITION(sales_q1_2014);
PRODUCT_ID CUSTOMER_ID CHANNEL_ID PROMO_ID SALE_DATE QUANTITY_SOLD AMOUNT_SOLD
1001 100 A 150 10-FEB-14 500 2000

显示表中的所有数据。

SELECT * FROM sales_range_partition;
PRODUCT_ID CUSTOMER_ID CHANNEL_ID PROMO_ID SALE_DATE QUANTITY_SOLD AMOUNT_SOLD
1001 100 A 150 10-FEB-14 500 2000
1002 110 B 180 15-JUN-14 100 1000
1001 100 A 150 20-AUG-14 500 2000

Task 2: Cleanup

DROP TABLE sales_range_partition;

Learn More

Range Partitioning
Database VLDB and Partitioning Guide


Lab 3: Interval Partitioning


Introduction

间隔分区是范围分区的扩展,其中数据库表分区是基于间隔完成的,而不仅仅是日期本身。 CREATE TABLE 语句的 INTERVAL 子句为表建立间隔分区。 您必须使用 PARTITION 子句指定至少一个范围分区。 范围分区键值决定了范围分区的高值,称为过渡点。 数据库会自动为超出该转换点的数据创建间隔分区。 每个区间分区的下边界是前一个范围或区间分区的非包含上边界。

预计实验时间:20 分钟


Features


  • 与 Oracle 11g 一起引入
  • 范围分区的扩展
  • 等大小范围分区的完全自动化
  • 复合级别分区的一部分
  • 差异区间和范围分区
  • 系统生成的间隔名称
  • 无需任何分区管理

Analyze Business Data at Various Intervals

当业务分析师想要查看每日、每月、每季度或每年的销售数据时,例如,在金融服务或零售行业中,根据间隔对数据进行分区会更容易。 随着数据的增长,分区会不断自动创建。


Task 1: Create Interval Partitioned Table

让我们创建间隔分区表。 以下示例指定两个分区,其间隔宽度为一个月。

CREATE TABLE interval_par_demo (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
)
PARTITION BY RANGE (
start_date
) INTERVAL ( numtoyminterval(1, 'MONTH') ) ( PARTITION interval_par_demo_p2
VALUES LESS THAN ( TO_DATE('1-7-2007', 'DD-MM-YYYY') ),
PARTITION interval_par_demo_p3
VALUES LESS THAN ( TO_DATE('1-8-2007', 'DD-MM-YYYY') )
);

Task 2: Auto Generate Interval Partitions

插入记录:

insert into interval_par_demo (start_date, store_id, inventory_id, qty_sold)
values ( '15-AUG-07', 1, 1, 1);
insert into interval_par_demo (start_date, store_id, inventory_id, qty_sold)
values ( '15-SEP-07', 1, 1, 1);

查看 USER_TAB_PARTITIONS 表中的数据:

SELECT
table_name,
partition_name,
partition_position,
high_value
FROM
user_tab_partitions
WHERE
table_name = 'INTERVAL_PAR_DEMO'
ORDER BY
partition_name;
TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
INTERVAL_PAR_DEMO INTERVAL_PAR_DEMO_P2 1 TO_DATE(' 2007-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
INTERVAL_PAR_DEMO INTERVAL_PAR_DEMO_P3 2 TO_DATE(' 2007-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
INTERVAL_PAR_DEMO SYS_P1891 3 TO_DATE(' 2007-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')
INTERVAL_PAR_DEMO SYS_P1892 4 TO_DATE(' 2007-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')

这里 SYS_P1891 和 SYS_P1892 是基于间隔自动生成的分区。 让我们验证新创建的分区中的数据。 请注意,自动生成的分区名称可能因您的实例而异。

SELECT * FROM interval_par_demo PARTITION(SYS_P1891);
START_DATE STORE_ID INVENTORY_ID QTY_SOLD
15-AUG-07 1 1 1
SELECT * FROM interval_par_demo PARTITION(SYS_P1892);
START_DATE STORE_ID INVENTORY_ID QTY_SOLD
15-SEP-07 1 1 1

Task 3: Cleanup

drop table interval_par_demo purge;

Learn More

Interval Partitioning
Database VLDB and Partitioning Guide


Lab 4: List Partitioning


Introduction

列表分区使您能够通过为每个分区的描述中的每个分区键指定离散值列表来显式控制行映射到分区的方式。 列表分区的优点是可以对无序和不相关的数据集进行分组和组织。 对于以 region 列作为分区键的表,East Sales Region 分区可能包含 New York、Virginia 和 Florida 值。 创建列表分区的语义类似于创建范围分区的语义。

创建列表分区的语义类似于创建范围分区的语义。 您在 CREATE TABLE 语句中指定 PARTITION BY LIST 子句来创建列表分区。 分区键可以是用于列表分区的表中的一个或多个列名。

预计实验时间:20 分钟

与范围分区不同,使用列表分区的分区之间没有明显的顺序感。 您还可以指定一个默认分区,将不映射到任何其他分区的行映射到该分区。


Features


  • 随 Oracle 9.0 引入
  • List Partition 是单级分区
  • 数据以值列表的形式组织
  • 每个列表有一个或多个无序的不同值
  • 非常适合分割不同的值,例如区域

Weather forecasting or sales forecasting based on regional list

天气预报是通过收集有关给定地点当前大气的定量数据并使用气象学来预测大气将如何变化来进行的。 天气预报是经济的一部分。 例如,2009 年,美国在天气预报上花费了大约 51 亿美元,产生的收益估计是原来的六倍。 数据量不断增长,分析以前的区域数据可能是性能密集型的。 由于天气数据具有地理位置、日期、温度和湿度的变化,因此这是基于区域值列表或使用列表分区对数据进行分区的好案例。 另一个很好的例子是基于区域划分销售数据以用于业务报告,如下面的任务列表所示。


Task 1: Create List Partitioned Table

创建列表分区表:

CREATE TABLE sales_by_region (
product_id NUMBER(6),
quantity_sold INTEGER,
sale_date DATE,
store_name VARCHAR(30),
state_code VARCHAR(2)
)
PARTITION BY LIST (state_code)
(
PARTITION region_east
VALUES ('CT','MA','MD','ME','NH','NJ','NY','PA','VA'),
PARTITION region_west
VALUES ('AZ','CA','CO','NM','NV','OR','UT','WA'),
PARTITION region_south
VALUES ('AL','AR','GA','KY','LA','MS','TN','TX'),
PARTITION region_central
VALUES ('IA','IL','MO','MI','ND','OH','SD')
);

查看 user_tab_partitions 表中的数据:

SELECT
table_name,
partition_name,
partition_position,
high_value
FROM
user_tab_partitions
WHERE
table_name = 'SALES_BY_REGION';
TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
SALES_BY_REGION REGION_EAST 1 'CT', 'MA', 'MD', 'ME', 'NH', 'NJ', 'NY', 'PA', 'VA'
SALES_BY_REGION REGION_WEST 2 'AZ', 'CA', 'CO', 'NM', 'NV', 'OR', 'UT', 'WA'
SALES_BY_REGION REGION_SOUTH 3 'AL', 'AR', 'GA', 'KY', 'LA', 'MS', 'TN', 'TX'
SALES_BY_REGION REGION_CENTRAL 4 'IA', 'IL', 'MO', 'MI', 'ND', 'OH', 'SD'

Task 2: Add New Partitions

-- 向表中添加一个新分区。
ALTER TABLE sales_by_region ADD PARTITION region_nonmainland VALUES ('HI','PR');
-- 在表中添加新分区以容纳 NULL 值。
ALTER TABLE sales_by_region ADD PARTITION region_null VALUES (NULL);
-- 为不映射到任何其他分区的值添加一个新分区到表中。
ALTER TABLE sales_by_region ADD PARTITION VALUES (DEFAULT);
-- 添加新分区后显示表中的分区。
SELECT
table_name,
partition_name,
partition_position,
high_value
FROM
user_tab_partitions
WHERE
table_name = 'SALES_BY_REGION';
TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
SALES_BY_REGION REGION_EAST 1 'CT', 'MA', 'MD', 'ME', 'NH', 'NJ', 'NY', 'PA', 'VA'
SALES_BY_REGION REGION_WEST 2 'AZ', 'CA', 'CO', 'NM', 'NV', 'OR', 'UT', 'WA'
SALES_BY_REGION REGION_SOUTH 3 'AL', 'AR', 'GA', 'KY', 'LA', 'MS', 'TN', 'TX'
SALES_BY_REGION REGION_CENTRAL 4 'IA', 'IL', 'MO', 'MI', 'ND', 'OH', 'SD'
SALES_BY_REGION REGION_NONMAINLAND 5 'HI', 'PR'
SALES_BY_REGION REGION_NULL 6 NULL
SALES_BY_REGION SYS_P1893 7 DEFAULT
7 rows selected.
-- 将新值添加到分区键列表中。
ALTER TABLE sales_by_region MODIFY PARTITION region_central ADD VALUES ('OK','KS');
-- 修改分区后显示表中的分区。
SELECT
table_name,
partition_name,
partition_position,
high_value
FROM
user_tab_partitions
WHERE
table_name = 'SALES_BY_REGION';
TABLE_NAME PARTITION_NAME PARTITION_POSITION HIGH_VALUE
SALES_BY_REGION REGION_EAST 1 'CT', 'MA', 'MD', 'ME', 'NH', 'NJ', 'NY', 'PA', 'VA'
SALES_BY_REGION REGION_WEST 2 'AZ', 'CA', 'CO', 'NM', 'NV', 'OR', 'UT', 'WA'
SALES_BY_REGION REGION_SOUTH 3 'AL', 'AR', 'GA', 'KY', 'LA', 'MS', 'TN', 'TX'
SALES_BY_REGION REGION_CENTRAL 4 'IA', 'IL', 'MO', 'MI', 'ND', 'OH', 'SD', 'OK', 'KS'
SALES_BY_REGION REGION_NONMAINLAND 5 'HI', 'PR'
SALES_BY_REGION REGION_NULL 6 NULL
SALES_BY_REGION SYS_P1893 7 DEFAULT
7 rows selected.
-- 将值插入表中。
INSERT INTO sales_by_region VALUES (1001,100,'25-AUG-2014','My Store MA','MA');
INSERT INTO sales_by_region VALUES (1002,200,'26-AUG-2014','My Store OK','OK');
COMMIT;
-- 显示表中的所有数据。
SELECT * FROM sales_by_region;
PRODUCT_ID QUANTITY_SOLD SALE_DATE STORE_NAME STATE_CODE
1001 100 25-AUG-14 My Store MA MA
1002 200 26-AUG-14 My Store OK OK

Task 3: Partitioned Data by Partition Name

显示表中指定分区的数据。

SELECT * FROM sales_by_region PARTITION(region_east);
PRODUCT_ID QUANTITY_SOLD SALE_DATE STORE_NAME STATE_CODE
1001 100 25-AUG-14 My Store MA MA

Task 4: Cleanup

drop table sales_by_region purge;

Learn More

List Partitioning
Database VLDB and Partitioning Guide


Lab 5: Hash Partitioning


Introduction

散列分区根据 Oracle 的散列算法将数据映射到分区到您识别的分区键。 散列算法在分区之间均匀分布行,使分区大小大致相同。 复合 hash-* 分区允许沿两个维度进行散列分区。 复合 hash-hash 分区策略在复合 hash-* 分区表中具有最大的商业价值。 这种技术有利于沿二维进行分区连接。

预计实验室时间:20 分钟

哈希分区是跨设备均匀分布数据的理想方法。 哈希分区也是范围分区的一种易于使用的替代方案,主要是在分区的数据不是历史数据或没有明显的分区键时。


Features


  • 随 Oracle 8.1 引入
  • 哈希分区是单级分区
  • 根据分区键的哈希值放置数据
  • 数据均等分布的理想选择
  • 分区数应该是 2 的幂,以实现均匀的数据分布

Data partition based on product list or hash values

在常规电子商务网站中,产品列表、过滤和排序决定了客户浏览产品目录的难易程度。 在 UI 专家的可用性测试中,客户购买组织良好且易于查找的产品的可能性很大。 下面是一个简单的示例,说明如何为板球运动装备对在线商店数据进行哈希分区,其中每个(球棒、球等)都被命名为表空间。

CREATE TABLE cricketset (
id NUMBER,
name VARCHAR2(60)
)
PARTITION BY HASH ( id ) PARTITIONS 7 STORE IN ( bat, ball, stumps, wicket, gloves, pads, guards );

Task 1: Create Interval Hash Partitioned Table

让我们创建一个以客户id为哈希值的间隔哈希分区表,对2016年之前和2016年之后的数据进行分区。

-- 一级是间隔分区,二级是哈希分区
CREATE TABLE sales_interval_hash (
prod_id NUMBER(6),
cust_id NUMBER,
time_id DATE,
channel_id CHAR(1),
promo_id NUMBER(6),
quantity_sold NUMBER(3),
amount_sold NUMBER(10, 2)
)
PARTITION BY RANGE ( time_id ) INTERVAL ( numtoyminterval(1, 'MONTH') )
SUBPARTITION BY HASH ( cust_id ) SUBPARTITIONS 4
( PARTITION before_2016
VALUES LESS THAN ( TO_DATE('01-JAN-2016', 'dd-MON-yyyy'

推荐阅读
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
手机用户2502923495
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有